package com.jeeplus.test.jlnu.admissionInfo.utils;

import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.usermodel.IndexedColors;

public class ExcelPostProcessor {

    /**
     * 遍历 sheet 中所有行，将前 lockColumnCount 列设置为灰色背景。
     *
     * @param workbook         写好的工作簿
     * @param lockColumnCount  前几列需要设置灰色（例如传入 34 表示前 34 列为灰色）
     */
    public static void applyGrayStyle(Workbook workbook, int lockColumnCount) {
        // 假设操作第一个 sheet
        Sheet sheet = workbook.getSheetAt(0);

        // 创建灰色样式（25% 灰色）
        CellStyle grayStyle = workbook.createCellStyle();
        grayStyle.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex());
        grayStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);

        int lastRowNum = sheet.getLastRowNum();
        for (int rowIndex = 0; rowIndex <= lastRowNum; rowIndex++) {
            Row row = sheet.getRow(rowIndex);
            if (row == null) {
                continue;
            }
            // 对每一行的前 lockColumnCount 列应用灰色背景
            for (int colIndex = 0; colIndex < lockColumnCount; colIndex++) {
                Cell cell = row.getCell(colIndex);
                if (cell == null) {
                    cell = row.createCell(colIndex);
                }
                cell.setCellStyle(grayStyle);
            }
        }
    }
}
